home *** CD-ROM | disk | FTP | other *** search
/ Champak 29 / Volume 29 - JOGO DISK .iso / Games / jungle_adventure.swf / scripts / __Packages / GDK / Grid.as < prev    next >
Text File  |  2006-11-29  |  4KB  |  156 lines

  1. class GDK.Grid extends Array
  2. {
  3.    var _overflow = true;
  4.    var defaultValue = null;
  5.    var _width = 0;
  6.    var _height = 0;
  7.    var _area = 0;
  8.    var repeatX = true;
  9.    var repeatY = true;
  10.    var _mode = 0;
  11.    function Grid(w, h, defaultValue)
  12.    {
  13.       super();
  14.       this.setSize(w != null ? w : 0,h != null ? h : 0,true);
  15.       if(defaultValue != null)
  16.       {
  17.          this.defaultValue = defaultValue;
  18.       }
  19.    }
  20.    function get width()
  21.    {
  22.       return this._width;
  23.    }
  24.    function set width(x)
  25.    {
  26.       this.setSize(x,this._height);
  27.    }
  28.    function get height()
  29.    {
  30.       return this._height;
  31.    }
  32.    function set height(x)
  33.    {
  34.       this.setSize(this._width,x);
  35.    }
  36.    function setSize(w, h, noRebuild)
  37.    {
  38.       if(w == this._width && h == this._height)
  39.       {
  40.          return false;
  41.       }
  42.       if(h != null && h > 0)
  43.       {
  44.          this._overflow = false;
  45.          this.setCell = this.setCell2D_Fixed;
  46.          this.getCell = this.getCell2D_Fixed;
  47.          this._area = w * h;
  48.          if(!noRebuild && this._mode == 0)
  49.          {
  50.          }
  51.          this._mode = 3;
  52.       }
  53.       else
  54.       {
  55.          this._overflow = true;
  56.          if(x <= 0)
  57.          {
  58.             this.setCell = this.setCell2D;
  59.             this.getCell = this.getCell2D;
  60.             if(!noRebuild && this._mode == 0)
  61.             {
  62.             }
  63.             this._mode = 1;
  64.          }
  65.          else
  66.          {
  67.             delete this.setCell;
  68.             delete this.getCell;
  69.             if(!noRebuild && this._mode != 0)
  70.             {
  71.             }
  72.             this._mode = 0;
  73.          }
  74.       }
  75.       this._width = w > 0 ? w : 0;
  76.       this._height = h > 0 ? h : 0;
  77.       return true;
  78.    }
  79.    function setCell(w, v)
  80.    {
  81.       this[w] = v;
  82.    }
  83.    function __resolve(v)
  84.    {
  85.       return this.defaultValue;
  86.    }
  87.    function getCell(w)
  88.    {
  89.       return (value = this[w]) == null ? this.defaultValue : value;
  90.    }
  91.    function setCell2D(w, h, val)
  92.    {
  93.       if(h != null && h < 0)
  94.       {
  95.          h = Math.floor(w / this._width);
  96.       }
  97.       else
  98.       {
  99.          w += h * this._width;
  100.       }
  101.       if(h >= this._height)
  102.       {
  103.          this._height = h + 1;
  104.       }
  105.       this[w] = val;
  106.    }
  107.    function getCell2D(w, h)
  108.    {
  109.       if(h != null)
  110.       {
  111.          return this[w + (h >= 0 ? h : this._height + h % this._height) * this._width];
  112.       }
  113.       return this[w] % this._width;
  114.    }
  115.    function setCell2D_Fixed(w, h, val)
  116.    {
  117.       var _loc3_ = undefined;
  118.       var _loc2_ = undefined;
  119.       this[((_loc3_ = w % this._width) >= 0 ? _loc3_ : this._width + _loc3_) + ((_loc2_ = h % this._height) >= 0 ? _loc2_ : this._height + _loc2_) * this._width] = val;
  120.    }
  121.    function getCell2D_Fixed(x, y)
  122.    {
  123.       if(!this.repeatX && !(x > -1 && x < this._width) || !this.repeatY && !(y > -1 && y < this._height))
  124.       {
  125.          return this.defaultValue;
  126.       }
  127.       var _loc3_ = undefined;
  128.       var _loc2_ = undefined;
  129.       return this[((_loc3_ = x % this._width) >= 0 ? _loc3_ : this._width + _loc3_) + ((_loc2_ = y % this._height) >= 0 ? _loc2_ : this._height + _loc2_) * this._width];
  130.    }
  131.    function toString()
  132.    {
  133.       var _loc3_ = "";
  134.       var _loc2_ = this.length;
  135.       _loc2_ = this.length;
  136.       while((_loc2_ = _loc2_ - 1) > 0)
  137.       {
  138.          _loc3_ = this[_loc2_] + _loc3_;
  139.          _loc3_ = (_loc2_ % this.__get__width() != 0 ? "," : ",\n") + _loc3_;
  140.       }
  141.       if(this.length > 0)
  142.       {
  143.          _loc3_ = this[0] + _loc3_;
  144.       }
  145.       return _loc3_;
  146.    }
  147.    function copyFromArray(a)
  148.    {
  149.       var _loc2_ = a.length;
  150.       while((_loc2_ = _loc2_ - 1) > -1)
  151.       {
  152.          this[_loc2_] = a[_loc2_];
  153.       }
  154.    }
  155. }
  156.